package regra;

import java.util.Date;
import java.util.List;

import org.joda.time.DateTime;
import org.joda.time.Days;

import basicas.Compra;
import basicas.Passe;

import util.Datas;



import dao.DAOPasse;
import dao.IDAOPasse;

public class RNPasse implements IRNPasse {
	
	private IDAOPasse dao = new DAOPasse();
	
	/* (non-Javadoc)
	 * @see regra.IRNPasse#isValido(java.util.Date)
	 */
	@Override
	public boolean isValido(Date primeiroUso){
		DateTime inicio = new DateTime(Datas.obterAno(primeiroUso),Datas.obterMes(primeiroUso), Datas.obterDia(primeiroUso), 12,0);
		Date dtHoje = new Date();
		DateTime hoje = new DateTime(Datas.obterAno(dtHoje),Datas.obterMes(dtHoje), Datas.obterDia(dtHoje), 12,0);
		
		if(Days.daysBetween(inicio, hoje).getDays()>9){
			return false;
		}
		return true;
	}
	
	/* (non-Javadoc)
	 * @see regra.IRNPasse#excluir(domain.compra.Passe)
	 */
	@Override
	public void excluir(Passe p){
		dao.remover(p);
	}
	
	/* (non-Javadoc)
	 * @see regra.IRNPasse#inserir(domain.compra.Passe)
	 */
	@Override
	public void inserir(Passe p){
		dao.inserir(p);
	}
	
	/* (non-Javadoc)
	 * @see regra.IRNPasse#consultarPorId(java.lang.Integer)
	 */
	@Override
	public Passe consultarPorId(Integer id){
		return dao.consultarPorId(id);
	}
	
	/* (non-Javadoc)
	 * @see regra.IRNPasse#consultarTodos()
	 */
	@Override
	public List<Passe> consultarTodos(){
		return dao.consultarTodos();
	}	
	
	/* (non-Javadoc)
	 * @see regra.IRNPasse#consultarPorCompra(domain.compra.Compra)
	 */
	@Override
	public List<Passe> consultarPorCompra(Compra c){
		return dao.consultaPorCompra(c);
	}
	
	/* (non-Javadoc)
	 * @see regra.IRNPasse#alterar(domain.compra.Passe)
	 */
	@Override
	public void alterar(Passe p){
		dao.alterar(p);
	}
}
